2.3 Targets for metabolites in the model¶
Annotate the model with metabolite information¶
from marsi.cobra.utils import annotate_model
Looking for local setup.cfg
Not available [Errno 2] No such file or directory: 'setup.cfg'
/Users/joaca/Documents/repositories/marsi/marsi/io/bigg.py:23 [1;31mFutureWarning[0m: from_csv is deprecated. Please use read_csv(...) instead. Note that some of the default arguments are different, so please refer to the documentation for from_csv when changing your function calls
annotate_model(model)
Failed to display Jupyter Widget of type HBox
.
If you're reading this message in Jupyter Notebook or JupyterLab, it may mean that the widgets JavaScript is still loading. If this message persists, it likely means that the widgets JavaScript library is either not installed or not enabled. See the Jupyter Widgets Documentation for setup instructions.
If you're reading this message in another notebook frontend (for example, a static rendering on GitHub or NBViewer), it may mean that your frontend doesn't currently support widgets.
model.metabolites.aacald_c.annotation
{'inchi': 'InChI=1S/C2H5NO/c3-1-2-4/h2H,1,3H2'}
from cameo.flux_analysis.analysis import find_essential_metabolites
essential_metabolites = find_essential_metabolites(model)
non_essential_metabolites = [met for met in model.metabolites
if met not in essential_metabolites and met.id.endswith("_c")]
analogues = {}
from marsi.chemistry.molecule import Molecule
from marsi.chemistry.common import dynamic_fingerprint_cut
from marsi.nearest_neighbors import search_closest_compounds
/Users/joaca/Documents/repositories/marsi/marsi/chemistry/rdkit.py:25 DeprecationWarning: The rdkit.Chem.MCS module is deprecated; please use rdkit.Chem.rdFMCS instead.
import os
from pandas import DataFrame
for met in non_essential_metabolites:
if met.id in ["23dhb_c", "3dhguln_c", "3hpp_c"] or met.id.endswith("coa_c"): # These chemicals are currently
# breaking the software when
# running in a loop like this.
continue
if 'inchi' in met.annotation and met.id not in analogues:
name = "%s_analogues.csv" % met.id
if os.path.exists(name):
analogues[met.id] = DataFrame.from_csv(name, sep="\t")
else:
molecule = Molecule.from_inchi(met.annotation['inchi'])
fp_cut = dynamic_fingerprint_cut(molecule.num_atoms)
analogues[met.id] = search_closest_compounds(molecule, fp_cut=fp_cut)
analogues[met.id].to_csv(name, sep='\t')
len(analogues), len([m for m in non_essential_metabolites if 'inchi' in m.annotation])
(47, 479)
from pandas import DataFrame
df = DataFrame(columns=["metabolite name", "number of hits", "number of hits (50% similarity)"])
for met_id, hits in analogues.items():
if len(hits) > 0:
name = model.metabolites.query(met_id)[0].name
df.loc[met_id] = [name, len(hits), len(hits[hits.structural_score > 0.5])]
df
metabolite name | number of hits | number of hits (50% similarity) | |
---|---|---|---|
3hpppn_c | 3-(3-hydroxy-phenyl)propionate | 6298 | 4129 |
23ddhb_c | 2,3-Dihydro-2,3-dihydroxybenzoate | 2296 | 1519 |
3hddcoa_c | (S)-3-Hydroxydodecanoyl-CoA | 6 | 0 |
2dr5p_c | 2-Deoxy-D-ribose 5-phosphate | 226 | 155 |
35cgmp_c | 3',5'-Cyclic GMP | 1254 | 428 |
2amsa_c | 2-Aminomalonate semialdehyde | 1785 | 449 |
13dpg_c | 3-Phospho-D-glyceroyl phosphate | 346 | 200 |
23dhba_c | (2,3-Dihydroxybenzoyl)adenylate | 159 | 4 |
3ohcoa_c | 3-Oxohexanoyl-CoA | 5 | 0 |
3dhgulnp_c | 3-keto-L-gulonate-6-phosphate | 65 | 48 |
2dr1p_c | 2-Deoxy-D-ribose 1-phosphate | 1149 | 508 |
2pg_c | D-Glycerate 2-phosphate | 1056 | 472 |
15dap_c | 1,5-Diaminopentane | 3181 | 925 |
2mcacn_c | Cis-2-Methylaconitate | 902 | 566 |
12ppd__R_c | (R)-Propane-1,2-diol | 244 | 193 |
2h3oppan_c | 2-Hydroxy-3-oxopropanoate | 964 | 361 |
2dh3dgal_c | 2-Dehydro-3-deoxy-D-galactonate | 1902 | 890 |
3hcinnm_c | 3-hydroxycinnamic acid | 6608 | 4684 |
1ddecg3p_c | 1-dodecanoyl-sn-glycerol 3-phosphate | 1308 | 41 |
3hhcoa_c | (S)-3-Hydroxyhexanoyl-CoA | 4 | 0 |
2mcit_c | 2-Methylcitrate | 1061 | 517 |
23doguln_c | 2,3-Dioxo-L-gulonate | 1951 | 905 |
3oddcoa_c | 3-Oxododecanoyl-CoA | 9 | 4 |
1tdecg3p_c | 1-tetradecanoyl-sn-glycerol 3-phosphate | 918 | 26 |
3odcoa_c | 3-Oxodecanoyl-CoA | 12 | 4 |
23dappa_c | 2,3-diaminopropionate | 3025 | 851 |
12ppd__S_c | (S)-Propane-1,2-diol | 1207 | 575 |
2ddg6p_c | 2-Dehydro-3-deoxy-D-gluconate 6-phosphate | 102 | 73 |
2tpr3dpcoa_c | 2'-(5''-triphosphoribosyl)-3'-dephospho-CoA | 10 | 1 |
3hadpcoa_c | (3S)-3-Hydroxyadipyl-CoA | 2 | 0 |
3ohdcoa_c | 3-Oxohexadecanoyl-CoA | 3 | 0 |
2aobut_c | L-2-Amino-3-oxobutanoate | 2856 | 818 |
2shchc_c | 2-Succinyl-6-hydroxy-2,4-cyclohexadiene-1-carb... | 319 | 182 |
2dh3dgal6p_c | 2-Dehydro-3-deoxy-D-galactonate 6-phosphate | 102 | 73 |
2ddglcn_c | 2-Dehydro-3-deoxy-D-gluconate | 1902 | 890 |
3hocoa_c | (S)-3-Hydroxyoctanoyl-CoA | 6 | 1 |
3ohodcoa_c | 3-Oxooctadecanoyl-CoA | 2 | 0 |
25dkglcn_c | 2,5-diketo-D-gluconate | 1833 | 779 |
3hdcoa_c | (S)-3-Hydroxydecanoyl-CoA | 12 | 2 |
2pglyc_c | 2-Phosphoglycolate | 1121 | 564 |